Modem software engineering practices generally require the utilization of specifications prior to and during the development of software. The specifications for software can be considered the blueprint for the design of the software. In general, the specifications include a number of requirements. Particularly and thoroughly delineating the requirements can ensure that the software will be developed in accordance with a customer's or an end user's expectations.
Good software engineering practices usually mandate that such software specification requirements be traceable. A traceability relationship is a directed inter-specification requirement link that allows users to follow the life of a requirement in a forward and or backward direction. The primary goal of traceability is to ensure that the software satisfies all the specified requirements. More particularly, a traceability relationship, or link, indicates that a second specification requirement is dependent to some degree on a first specification requirement. If the first requirement changes, then there is thus a possibility that the second requirement may also need to change.
However, traceability links by themselves have very little semantic information, limiting their potential usefulness. For instance, while a given link shows the existence of a relationship between two requirements, it does not convey any information about the degree of “coupling” between the requirements. For example, a given requirement R1 may trace via a first link to a requirement R2 and via a second link to a requirement R3. However, the requirement R2 may be more sensitive to changes in the requirement R1 than the requirement R3 is. The traceability links between requirements R1 and R2 and between requirements R1 and R3 do not capture this coupling information, however.
Existing software specification requirements management tools include the Rational® RequisitePro® requirements management tool, available from International Business Machines, Inc., of Armonk, N.Y., and the DOORS® requirements management tool, available from Telelogic AB, of Malmö, Sweden. These management tools allow users to create traceability links among software specification requirements. However, they provide little if any support for tracking coupling information for the traceability links in a manner as described in the previous paragraph.
For example, within the RequisitePro® requirements management tool, when a given requirement changes, any other requirements that are linked to this requirement are marked as suspect to denote that they may be influenced by the change. However, there is no way by which the degree of this influence can be estimated. Furthermore, a user cannot manually assign coupling values to the traceability links in question that have been affected.
By comparison, within the DOORS® requirements management tool, a user is permitted to manually assign coupling values to traceability links. However, manual assignment of such values to traceability links is unsatisfactory for at least two reasons. First, such manual assignment is impractical at best, and impossible at worst, when there are literally thousands of specification requirements and traceability links, which is common for large software. Second, it is unclear on what basis developers should assign such coupling values and how they can update these values as requirements change. Furthermore, different developers may assign different values to the same traceability links, such that there is no objective measure as to what a particular coupling value represents or means as to a given traceability link.
For these and other reasons, therefore, there is a need for the present invention.